package com.shijie.log.recorder;
import com.shijie.log.formatter.ValueFormatter;

import java.util.List;

/**
 * 变更日志记录顶层接口：新增格式化器支持
 * @param <T> 变更字段封装类型（FieldItem）
 */
public interface DiffLogRecorder<T> {
    /**
     * 批量记录（带格式化器）
     * @param changedFields 变更字段列表
     */
    void record(List<T> changedFields);

    /**
     * 单字段记录（带格式化器）
     * @param key 字段名
     * @param oldVal 旧值
     * @param newVal 新值
     * @param formatter 值格式化器（自定义格式）
     */
    void record(String key, Object oldVal, Object newVal, ValueFormatter formatter);
}